feat: remote MCP server integration with admin UI and Connector Manager gateway - #381
Merged
Conversation
prvnsmpth
force-pushed
the
feat/direct-mcp-integration
branch
from
July 27, 2026 08:31
52a9ff9 to
fb591c5
Compare
- add admin-managed remote MCP sources, probing, credentials, and OAuth setup - reconcile MCP catalogs into manifests and route tools, resources, and prompts through the gateway - prevent sync and slug collisions while adding SSRF protections and focused tests
- Agent connect.lookup callback must return an array when opts.all is true - Improve error logging to surface underlying cause for fetch failures
- Allow hyphens in MCP source slugs (regex and DB constraint) - Show user-friendly error message instead of raw regex - Remove stray 'export' from helper function causing SvelteKit 500
- List page now loads and displays all configured MCP connections - Add MCP form moved to a dialog instead of a separate page - Shows manifest availability, tool/resource counts, and connection status per source
- Remove internal-infrastructure jargon (Connector Manager, Redis) - Remove redundant security reassurance text - 'Immutable' → 'Can't be changed later' - 'Runtime catalog' → 'Connection status' - 'Bootstrap credential' → 'Admin access' - 'Catalog data discovered at runtime' → 'Available tools detected automatically'
- Test endpoint now accepts sourceId to look up stored bearer credentials - Edit page passes sourceId when no new token is provided - Save also skips sending empty bearerToken to avoid validation errors
- MCP is now the third tab (Sources, OAuth Apps, MCP) on the integrations page - Sidebar MCP link points to /admin/settings/integrations?tab=mcp - Shared MCP tab component used by both standalone page and tab - Edit pages remain at /admin/settings/mcp/[sourceId]
- Add POST /remote-mcp/:source_id/refresh endpoint to Connector Manager - Web test endpoint triggers CM catalog refresh when sourceId is provided - Edit page calls invalidateAll after refresh to show fresh manifest data
prvnsmpth
force-pushed
the
feat/direct-mcp-integration
branch
from
July 29, 2026 10:14
36bfc19 to
bef9360
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds the ability to connect to external Streamable HTTP MCP servers directly through Omni's admin UI. Unlike the existing MCP support baked into native Omni connectors (which use MCP internally), this lets admins point Omni at any remote MCP server — no connector code needed.
sources.integration_typecolumn to distinguish native connectors from remote MCP, with conditional slug constraints to prevent collisionsRemoteMcpGatewayinstead of routing through the connector SDKoauthfield, reusing generic OAuth start/callback/refresh/credential-ready flowsPOST /remote-mcp/:source_id/refreshendpoint so probe results persist to Redis across page reloads